1. The Field of the Invention
The present invention relates to data storage solutions. More particularly, embodiments of the invention relate to software, hardware, systems and methods for de-duplicating data in SCSI storage devices accessed using the iSCSI protocol.
2. The Relevant Technology
Economic, political, and social power are increasingly managed by data. Transactions and wealth are represented by data. Political power is analyzed and modified based on data. Human interactions and relationships are defined by data exchanges. Hence, the efficient distribution, storage, and management of data is expected to play an increasingly vital role in human society.
The quantity of data that must be managed, in the form of computer programs, databases, files, and the like, increases exponentially. As computer processing power increases, operating system and application software becomes larger. Moreover, the desire to access larger data sets such as multimedia files and large databases further increases the quantity of data that is managed. This increasingly large data load must be transported between computing devices and stored in an accessible fashion. The exponential growth rate of data is expected to outpace the improvements in communication bandwidth and storage capacity, making data management using conventional methods even more urgent.
One set of standards for physically connecting and transferring data between computers and peripheral devices for storage is the small computer systems interface, also referred to as “SCSI.” SCSI is implemented as a local bus allowing a computer to access, for instance, a locally attached hard disk using any one of four different categories of SCSI commands including non-data, write, read, and bidirectional commands. A SCSI read typically includes three steps: (1) an initiator (e.g., the computer) sends a read command to a target (e.g., the hard disk) specifying a starting block address and the number of contiguous blocks to transfer, (2) the target sends the requested data to the initiator, and (3) the target sends a status indicator to the initiator indicative of the success or failure of the read. As another example, a SCSI write typically includes four steps: (1) the initiator sends a SCSI write command to the target specifying a starting block address and the number of contiguous blocks that will be transferred by the command, (2) the target sends an indication to the initiator that it is ready to receive the data, (3) the initiator sends the data to the target, and (4) the target sends a status indicator to the initiator. Internet SCSI, also referred to as “iSCSI” is a protocol that allows initiators to send SCSI commands to remote SCSI storage devices over IP networks without the special-purpose cabling required for conventional SCSI. Basically, iSCSI is the embedding of SCSI commands over the TCP/IP protocol, allowing iSCSI to be run over long distances using existing network infrastructure. It enables organizations to consolidate storage into data center storage arrays while providing hosts with the illusion of locally-attached disks.
As the data load managed in networks implementing the iSCSI protocol increases over time, the amount of redundant data stored within a single SCSI storage device or across multiple SCSI storage devices also increases, which reduces the amount of available storage by the amount occupied by the redundant data. Consequently, what are needed are methods and systems for identifying and eliminating redundant data in networks implementing the iSCSI protocol.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced